{
  "cells": [
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "2LDjNwV-L07C"
      },
      "source": [
        "# Аналитика данных с помощью `pandas` и `matplotlib`"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "dWNu1zPiL07Q"
      },
      "source": [
        "## 1. Данные (2 балла)"
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "Скачиваем данные для работы:"
      ],
      "metadata": {
        "id": "Nh7axXM5MrlX"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "%%bash\n",
        "gdown 1l-vkTaM1sK0g2jWHkwiFWDtWjCrac9uM"
      ],
      "metadata": {
        "id": "bzRxn9yrMq79",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "4adef187-4a1d-4411-971d-08ee2780083e"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stderr",
          "text": [
            "Downloading...\n",
            "From: https://drive.google.com/uc?id=1l-vkTaM1sK0g2jWHkwiFWDtWjCrac9uM\n",
            "To: /content/coins.csv\n",
            "\r  0%|          | 0.00/3.98M [00:00<?, ?B/s]\r100%|██████████| 3.98M/3.98M [00:00<00:00, 158MB/s]\n"
          ]
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "rxz0pXGIL07S"
      },
      "source": [
        "Начнем с необходимых приготовлений."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 57,
      "metadata": {
        "id": "-G3lHlpmL07T"
      },
      "outputs": [],
      "source": [
        "import numpy as np\n",
        "import pandas as pd\n",
        "import matplotlib as mpl\n",
        "import matplotlib.pyplot as plt\n",
        "import ipywidgets  # Библиотека для интерактивных контролов в jupyter notebook'е\n",
        "\n",
        "%matplotlib inline"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "syVncWO5L07X"
      },
      "source": [
        "#### Загрузите заранее подготовленный датасет из файла `coins.csv`. Создайте объект типа `pandas.DataFrame` с именем `coins` и в качестве индекса выберите колонку с датой."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "3a-dnCG0L07Z"
      },
      "outputs": [],
      "source": [
        "#Ваш код тут\n",
        "#   |\\__/,|   (`\\\n",
        "#   |o o  |__ _)\n",
        "# _.( T   )  `  /\n",
        "#((_ `^--' /_<  \\\n",
        "#`` `-'(((/  (((/"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "XYauvggmL07a"
      },
      "source": [
        "Посмотрим что получилось"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "l4uGAbw2L07e",
        "outputId": "1233b1b6-3137-4dfb-8685-c9d8fb77bd9e",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 206
        }
      },
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "             price  txCount      txVolume  activeAddresses symbol      name  \\\n",
              "date                                                                          \n",
              "2013-04-28  135.30  41702.0  6.879868e+07         117984.0    BTC   Bitcoin   \n",
              "2013-04-28    4.30   9174.0  4.431952e+07          17216.0    LTC  Litecoin   \n",
              "2013-04-29  134.44  51602.0  1.138128e+08          86925.0    BTC   Bitcoin   \n",
              "2013-04-29    4.37   9275.0  3.647810e+07          18395.0    LTC  Litecoin   \n",
              "\n",
              "              open    high     low   close  volume        market  \n",
              "date                                                              \n",
              "2013-04-28  135.30  135.98  132.10  134.21     0.0  1.500520e+09  \n",
              "2013-04-28    4.30    4.40    4.18    4.35     0.0  7.377340e+07  \n",
              "2013-04-29  134.44  147.49  134.00  144.54     0.0  1.491160e+09  \n",
              "2013-04-29    4.37    4.57    4.23    4.38     0.0  7.495270e+07  "
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-fe913e28-c064-4d92-aaec-9b5b06f990ad\" class=\"colab-df-container\">\n",
              "    <div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>price</th>\n",
              "      <th>txCount</th>\n",
              "      <th>txVolume</th>\n",
              "      <th>activeAddresses</th>\n",
              "      <th>symbol</th>\n",
              "      <th>name</th>\n",
              "      <th>open</th>\n",
              "      <th>high</th>\n",
              "      <th>low</th>\n",
              "      <th>close</th>\n",
              "      <th>volume</th>\n",
              "      <th>market</th>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>date</th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>2013-04-28</th>\n",
              "      <td>135.30</td>\n",
              "      <td>41702.0</td>\n",
              "      <td>6.879868e+07</td>\n",
              "      <td>117984.0</td>\n",
              "      <td>BTC</td>\n",
              "      <td>Bitcoin</td>\n",
              "      <td>135.30</td>\n",
              "      <td>135.98</td>\n",
              "      <td>132.10</td>\n",
              "      <td>134.21</td>\n",
              "      <td>0.0</td>\n",
              "      <td>1.500520e+09</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2013-04-28</th>\n",
              "      <td>4.30</td>\n",
              "      <td>9174.0</td>\n",
              "      <td>4.431952e+07</td>\n",
              "      <td>17216.0</td>\n",
              "      <td>LTC</td>\n",
              "      <td>Litecoin</td>\n",
              "      <td>4.30</td>\n",
              "      <td>4.40</td>\n",
              "      <td>4.18</td>\n",
              "      <td>4.35</td>\n",
              "      <td>0.0</td>\n",
              "      <td>7.377340e+07</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2013-04-29</th>\n",
              "      <td>134.44</td>\n",
              "      <td>51602.0</td>\n",
              "      <td>1.138128e+08</td>\n",
              "      <td>86925.0</td>\n",
              "      <td>BTC</td>\n",
              "      <td>Bitcoin</td>\n",
              "      <td>134.44</td>\n",
              "      <td>147.49</td>\n",
              "      <td>134.00</td>\n",
              "      <td>144.54</td>\n",
              "      <td>0.0</td>\n",
              "      <td>1.491160e+09</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2013-04-29</th>\n",
              "      <td>4.37</td>\n",
              "      <td>9275.0</td>\n",
              "      <td>3.647810e+07</td>\n",
              "      <td>18395.0</td>\n",
              "      <td>LTC</td>\n",
              "      <td>Litecoin</td>\n",
              "      <td>4.37</td>\n",
              "      <td>4.57</td>\n",
              "      <td>4.23</td>\n",
              "      <td>4.38</td>\n",
              "      <td>0.0</td>\n",
              "      <td>7.495270e+07</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>\n",
              "    <div class=\"colab-df-buttons\">\n",
              "\n",
              "  <div class=\"colab-df-container\">\n",
              "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-fe913e28-c064-4d92-aaec-9b5b06f990ad')\"\n",
              "            title=\"Convert this dataframe to an interactive table.\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
              "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
              "  </svg>\n",
              "    </button>\n",
              "\n",
              "  <style>\n",
              "    .colab-df-container {\n",
              "      display:flex;\n",
              "      gap: 12px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert {\n",
              "      background-color: #E8F0FE;\n",
              "      border: none;\n",
              "      border-radius: 50%;\n",
              "      cursor: pointer;\n",
              "      display: none;\n",
              "      fill: #1967D2;\n",
              "      height: 32px;\n",
              "      padding: 0 0 0 0;\n",
              "      width: 32px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert:hover {\n",
              "      background-color: #E2EBFA;\n",
              "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "      fill: #174EA6;\n",
              "    }\n",
              "\n",
              "    .colab-df-buttons div {\n",
              "      margin-bottom: 4px;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert {\n",
              "      background-color: #3B4455;\n",
              "      fill: #D2E3FC;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert:hover {\n",
              "      background-color: #434B5C;\n",
              "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "      fill: #FFFFFF;\n",
              "    }\n",
              "  </style>\n",
              "\n",
              "    <script>\n",
              "      const buttonEl =\n",
              "        document.querySelector('#df-fe913e28-c064-4d92-aaec-9b5b06f990ad button.colab-df-convert');\n",
              "      buttonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "      async function convertToInteractive(key) {\n",
              "        const element = document.querySelector('#df-fe913e28-c064-4d92-aaec-9b5b06f990ad');\n",
              "        const dataTable =\n",
              "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
              "                                                    [key], {});\n",
              "        if (!dataTable) return;\n",
              "\n",
              "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
              "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
              "          + ' to learn more about interactive tables.';\n",
              "        element.innerHTML = '';\n",
              "        dataTable['output_type'] = 'display_data';\n",
              "        await google.colab.output.renderOutput(dataTable, element);\n",
              "        const docLink = document.createElement('div');\n",
              "        docLink.innerHTML = docLinkHtml;\n",
              "        element.appendChild(docLink);\n",
              "      }\n",
              "    </script>\n",
              "  </div>\n",
              "\n",
              "\n",
              "<div id=\"df-5ae1b232-f8f0-4919-a336-710a827cfcce\">\n",
              "  <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-5ae1b232-f8f0-4919-a336-710a827cfcce')\"\n",
              "            title=\"Suggest charts\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
              "     width=\"24px\">\n",
              "    <g>\n",
              "        <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
              "    </g>\n",
              "</svg>\n",
              "  </button>\n",
              "\n",
              "<style>\n",
              "  .colab-df-quickchart {\n",
              "      --bg-color: #E8F0FE;\n",
              "      --fill-color: #1967D2;\n",
              "      --hover-bg-color: #E2EBFA;\n",
              "      --hover-fill-color: #174EA6;\n",
              "      --disabled-fill-color: #AAA;\n",
              "      --disabled-bg-color: #DDD;\n",
              "  }\n",
              "\n",
              "  [theme=dark] .colab-df-quickchart {\n",
              "      --bg-color: #3B4455;\n",
              "      --fill-color: #D2E3FC;\n",
              "      --hover-bg-color: #434B5C;\n",
              "      --hover-fill-color: #FFFFFF;\n",
              "      --disabled-bg-color: #3B4455;\n",
              "      --disabled-fill-color: #666;\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart {\n",
              "    background-color: var(--bg-color);\n",
              "    border: none;\n",
              "    border-radius: 50%;\n",
              "    cursor: pointer;\n",
              "    display: none;\n",
              "    fill: var(--fill-color);\n",
              "    height: 32px;\n",
              "    padding: 0;\n",
              "    width: 32px;\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart:hover {\n",
              "    background-color: var(--hover-bg-color);\n",
              "    box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "    fill: var(--button-hover-fill-color);\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart-complete:disabled,\n",
              "  .colab-df-quickchart-complete:disabled:hover {\n",
              "    background-color: var(--disabled-bg-color);\n",
              "    fill: var(--disabled-fill-color);\n",
              "    box-shadow: none;\n",
              "  }\n",
              "\n",
              "  .colab-df-spinner {\n",
              "    border: 2px solid var(--fill-color);\n",
              "    border-color: transparent;\n",
              "    border-bottom-color: var(--fill-color);\n",
              "    animation:\n",
              "      spin 1s steps(1) infinite;\n",
              "  }\n",
              "\n",
              "  @keyframes spin {\n",
              "    0% {\n",
              "      border-color: transparent;\n",
              "      border-bottom-color: var(--fill-color);\n",
              "      border-left-color: var(--fill-color);\n",
              "    }\n",
              "    20% {\n",
              "      border-color: transparent;\n",
              "      border-left-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "    }\n",
              "    30% {\n",
              "      border-color: transparent;\n",
              "      border-left-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "      border-right-color: var(--fill-color);\n",
              "    }\n",
              "    40% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "    }\n",
              "    60% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "    }\n",
              "    80% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "      border-bottom-color: var(--fill-color);\n",
              "    }\n",
              "    90% {\n",
              "      border-color: transparent;\n",
              "      border-bottom-color: var(--fill-color);\n",
              "    }\n",
              "  }\n",
              "</style>\n",
              "\n",
              "  <script>\n",
              "    async function quickchart(key) {\n",
              "      const quickchartButtonEl =\n",
              "        document.querySelector('#' + key + ' button');\n",
              "      quickchartButtonEl.disabled = true;  // To prevent multiple clicks.\n",
              "      quickchartButtonEl.classList.add('colab-df-spinner');\n",
              "      try {\n",
              "        const charts = await google.colab.kernel.invokeFunction(\n",
              "            'suggestCharts', [key], {});\n",
              "      } catch (error) {\n",
              "        console.error('Error during call to suggestCharts:', error);\n",
              "      }\n",
              "      quickchartButtonEl.classList.remove('colab-df-spinner');\n",
              "      quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
              "    }\n",
              "    (() => {\n",
              "      let quickchartButtonEl =\n",
              "        document.querySelector('#df-5ae1b232-f8f0-4919-a336-710a827cfcce button');\n",
              "      quickchartButtonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "    })();\n",
              "  </script>\n",
              "</div>\n",
              "    </div>\n",
              "  </div>\n"
            ],
            "application/vnd.google.colaboratory.intrinsic+json": {
              "type": "dataframe",
              "variable_name": "coins",
              "summary": "{\n  \"name\": \"coins\",\n  \"rows\": 37588,\n  \"fields\": [\n    {\n      \"column\": \"price\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 859.1090580994925,\n        \"min\": 2e-06,\n        \"max\": 19475.8,\n        \"samples\": [\n          0.371336,\n          0.040403,\n          0.157763\n        ],\n        \"num_unique_values\": 21289,\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"txCount\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 77029.95002289013,\n        \"min\": 0.0,\n        \"max\": 1349890.0,\n        \"samples\": [\n          124773.0,\n          1420.0,\n          125075.0\n        ],\n        \"num_unique_values\": 13148,\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"txVolume\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 8.972836786611969e+55,\n        \"min\": 0.0,\n        \"max\": 1.6967442189e+58,\n        \"samples\": [\n          337494354.573,\n          1725387.85963,\n          60283555.7976\n        ],\n        \"num_unique_values\": 34673,\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"activeAddresses\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 114319.57073927639,\n        \"min\": 0.0,\n        \"max\": 1283929.0,\n        \"samples\": [\n          8245.0,\n          55709.0,\n          163837.0\n        ],\n        \"num_unique_values\": 15155,\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"symbol\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"samples\": [\n          \"ICX\",\n          \"POLY\",\n          \"BTC\"\n        ],\n        \"num_unique_values\": 66,\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"name\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"samples\": [\n          \"Gnosis\",\n          \"Bitcoin\",\n          \"Decentraland\"\n        ],\n        \"num_unique_values\": 70,\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"open\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 855.4365624257038,\n        \"min\": 2e-06,\n        \"max\": 19475.8,\n        \"samples\": [\n          232.82,\n          0.028527,\n          0.166398\n        ],\n        \"num_unique_values\": 22026,\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"high\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 890.5273047797233,\n        \"min\": 3e-06,\n        \"max\": 20089.0,\n        \"samples\": [\n          13.79,\n          0.006938,\n          0.953229\n        ],\n        \"num_unique_values\": 21850,\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"low\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 813.6970418813553,\n        \"min\": 2e-06,\n        \"max\": 18974.1,\n        \"samples\": [\n          40.63,\n          0.340409,\n          0.160017\n        ],\n        \"num_unique_values\": 22373,\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"close\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 855.9547039530243,\n        \"min\": 2e-06,\n        \"max\": 19497.4,\n        \"samples\": [\n          429.34,\n          432.52,\n          118.57\n        ],\n        \"num_unique_values\": 21994,\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"volume\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 804223873.8121324,\n        \"min\": 0.0,\n        \"max\": 23840900000.0,\n        \"samples\": [\n          854680.0,\n          71722.0,\n          1451410.0\n        ],\n        \"num_unique_values\": 35208,\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"market\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 15345463355.630096,\n        \"min\": 0.0,\n        \"max\": 326141000000.0,\n        \"samples\": [\n          1009060.0,\n          18755200.0,\n          97532200.0\n        ],\n        \"num_unique_values\": 35613,\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {},
          "execution_count": 16
        }
      ],
      "source": [
        "coins.head(4)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "KVwDhn2bL07i"
      },
      "source": [
        "Поясним значения хранящиеся в колонках\n",
        " - date - дата измерений\n",
        " - name - полное название монеты\n",
        " - symbol - сокращенное название монеты\n",
        " - price - средняя цена монеты за торговый день в USD\n",
        " - txCount - количество транзакций в сети данной монеты\n",
        " - txVolume - объем монет переведенных между адресами в сети данной монеты\n",
        " - activeAddresses - количество адресов совершавших а данный день транзации в сети данной монеты\n",
        " - open - цена монеты в начале торгов данного дня\n",
        " - close - цена монеты в конце торгов данного дня\n",
        " - high - самая высокая цена данной монеты в течение данного торгового дня\n",
        " - low - самая низкая цена данной монеты в течение данного торгового дня\n",
        " - volume - объем торгов данной монетой на биржах в данный день\n",
        " - market - капитализация данной монеты в данный день"
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "Изучим полученные данные. Ответьте на следующие вопросы (вставляйте клетки с кодом и тектом ниже):"
      ],
      "metadata": {
        "id": "_q8b6IndNKmV"
      }
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "7ud0R7PcL07k"
      },
      "source": [
        "### 1. Сколько всего различных монет представлено в датасете?\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "oN2d3V71L07m",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "6ce6d0be-6187-4a9e-867f-845ff71a964e"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "BTC      1866\n",
            "LTC      1866\n",
            "DOGE     1635\n",
            "VTC      1599\n",
            "DGB      1582\n",
            "         ... \n",
            "ZIL       133\n",
            "POLY      125\n",
            "CENNZ      86\n",
            "LOOM       85\n",
            "CTXC       52\n",
            "Name: symbol, Length: 66, dtype: int64\n",
            "Количество различных монет(Length): 66\n"
          ]
        }
      ],
      "source": [
        "#Ваш код тут\n",
        "#   |\\__/,|   (`\\\n",
        "#   |o o  |__ _)\n",
        "# _.( T   )  `  /\n",
        "#((_ `^--' /_<  \\\n",
        "#`` `-'(((/  (((/"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "TDffn2rLL07n"
      },
      "source": [
        "### 2. За какой период данные мы имеем?"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "7Ucmnjv1L07p",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "9005d53a-60df-4141-ef0c-e5d87b1deffd"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "2013-04-28 2018-06-06\n"
          ]
        }
      ],
      "source": [
        "#Ваш код тут\n",
        "#   |\\__/,|   (`\\\n",
        "#   |o o  |__ _)\n",
        "# _.( T   )  `  /\n",
        "#((_ `^--' /_<  \\\n",
        "#`` `-'(((/  (((/"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "XFHJsy_5L07p"
      },
      "source": [
        "### 3. Есть ли пропуски в данных? Какой природы эти пропуски, чем они скорее всего вызваны?\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "D-nOmmFjL07r",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "94092a84-19be-48b0-9d6f-7f5669a189d4"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "<class 'pandas.core.frame.DataFrame'>\n",
            "Index: 37588 entries, 2013-04-28 to 2018-06-06\n",
            "Data columns (total 12 columns):\n",
            " #   Column           Non-Null Count  Dtype  \n",
            "---  ------           --------------  -----  \n",
            " 0   price            37261 non-null  float64\n",
            " 1   txCount          36068 non-null  float64\n",
            " 2   txVolume         35758 non-null  float64\n",
            " 3   activeAddresses  36068 non-null  float64\n",
            " 4   symbol           37588 non-null  object \n",
            " 5   name             37588 non-null  object \n",
            " 6   open             37588 non-null  float64\n",
            " 7   high             37588 non-null  float64\n",
            " 8   low              37588 non-null  float64\n",
            " 9   close            37588 non-null  float64\n",
            " 10  volume           37588 non-null  float64\n",
            " 11  market           37588 non-null  float64\n",
            "dtypes: float64(10), object(2)\n",
            "memory usage: 4.7+ MB\n"
          ]
        }
      ],
      "source": [
        "#Ваш код тут\n",
        "#   |\\__/,|   (`\\\n",
        "#   |o o  |__ _)\n",
        "# _.( T   )  `  /\n",
        "#((_ `^--' /_<  \\\n",
        "#`` `-'(((/  (((/"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "Da-aXu_hL07s"
      },
      "source": [
        "### 4. У какой монеты и когда была самая высокая цена?\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "-D50115vL07t",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 112
        },
        "outputId": "c7cc2d31-d6ad-4059-fae1-778484fa5d1d"
      },
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "              price   txCount      txVolume  activeAddresses symbol     name  \\\n",
              "date                                                                           \n",
              "2017-12-17  19475.8  391725.0  3.746920e+10        1176110.0    BTC  Bitcoin   \n",
              "\n",
              "               open     high      low    close        volume        market  \n",
              "date                                                                        \n",
              "2017-12-17  19475.8  20089.0  18974.1  19140.8  1.331460e+10  3.261410e+11  "
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-0ec21a0a-b2ed-4477-8717-ce6112c1ff30\" class=\"colab-df-container\">\n",
              "    <div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>price</th>\n",
              "      <th>txCount</th>\n",
              "      <th>txVolume</th>\n",
              "      <th>activeAddresses</th>\n",
              "      <th>symbol</th>\n",
              "      <th>name</th>\n",
              "      <th>open</th>\n",
              "      <th>high</th>\n",
              "      <th>low</th>\n",
              "      <th>close</th>\n",
              "      <th>volume</th>\n",
              "      <th>market</th>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>date</th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>2017-12-17</th>\n",
              "      <td>19475.8</td>\n",
              "      <td>391725.0</td>\n",
              "      <td>3.746920e+10</td>\n",
              "      <td>1176110.0</td>\n",
              "      <td>BTC</td>\n",
              "      <td>Bitcoin</td>\n",
              "      <td>19475.8</td>\n",
              "      <td>20089.0</td>\n",
              "      <td>18974.1</td>\n",
              "      <td>19140.8</td>\n",
              "      <td>1.331460e+10</td>\n",
              "      <td>3.261410e+11</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>\n",
              "    <div class=\"colab-df-buttons\">\n",
              "\n",
              "  <div class=\"colab-df-container\">\n",
              "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-0ec21a0a-b2ed-4477-8717-ce6112c1ff30')\"\n",
              "            title=\"Convert this dataframe to an interactive table.\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
              "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
              "  </svg>\n",
              "    </button>\n",
              "\n",
              "  <style>\n",
              "    .colab-df-container {\n",
              "      display:flex;\n",
              "      gap: 12px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert {\n",
              "      background-color: #E8F0FE;\n",
              "      border: none;\n",
              "      border-radius: 50%;\n",
              "      cursor: pointer;\n",
              "      display: none;\n",
              "      fill: #1967D2;\n",
              "      height: 32px;\n",
              "      padding: 0 0 0 0;\n",
              "      width: 32px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert:hover {\n",
              "      background-color: #E2EBFA;\n",
              "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "      fill: #174EA6;\n",
              "    }\n",
              "\n",
              "    .colab-df-buttons div {\n",
              "      margin-bottom: 4px;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert {\n",
              "      background-color: #3B4455;\n",
              "      fill: #D2E3FC;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert:hover {\n",
              "      background-color: #434B5C;\n",
              "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "      fill: #FFFFFF;\n",
              "    }\n",
              "  </style>\n",
              "\n",
              "    <script>\n",
              "      const buttonEl =\n",
              "        document.querySelector('#df-0ec21a0a-b2ed-4477-8717-ce6112c1ff30 button.colab-df-convert');\n",
              "      buttonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "      async function convertToInteractive(key) {\n",
              "        const element = document.querySelector('#df-0ec21a0a-b2ed-4477-8717-ce6112c1ff30');\n",
              "        const dataTable =\n",
              "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
              "                                                    [key], {});\n",
              "        if (!dataTable) return;\n",
              "\n",
              "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
              "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
              "          + ' to learn more about interactive tables.';\n",
              "        element.innerHTML = '';\n",
              "        dataTable['output_type'] = 'display_data';\n",
              "        await google.colab.output.renderOutput(dataTable, element);\n",
              "        const docLink = document.createElement('div');\n",
              "        docLink.innerHTML = docLinkHtml;\n",
              "        element.appendChild(docLink);\n",
              "      }\n",
              "    </script>\n",
              "  </div>\n",
              "\n",
              "    </div>\n",
              "  </div>\n"
            ],
            "application/vnd.google.colaboratory.intrinsic+json": {
              "type": "dataframe",
              "summary": "{\n  \"name\": \"coins[coins[\\\"high\\\"] == coins[\\\"high\\\"]\",\n  \"rows\": 1,\n  \"fields\": [\n    {\n      \"column\": \"price\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": NaN,\n        \"min\": 19475.8,\n        \"max\": 19475.8,\n        \"samples\": [\n          19475.8\n        ],\n        \"num_unique_values\": 1,\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"txCount\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": NaN,\n        \"min\": 391725.0,\n        \"max\": 391725.0,\n        \"samples\": [\n          391725.0\n        ],\n        \"num_unique_values\": 1,\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"txVolume\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": NaN,\n        \"min\": 37469204186.1,\n        \"max\": 37469204186.1,\n        \"samples\": [\n          37469204186.1\n        ],\n        \"num_unique_values\": 1,\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"activeAddresses\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": NaN,\n        \"min\": 1176110.0,\n        \"max\": 1176110.0,\n        \"samples\": [\n          1176110.0\n        ],\n        \"num_unique_values\": 1,\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"symbol\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"samples\": [\n          \"BTC\"\n        ],\n        \"num_unique_values\": 1,\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"name\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"samples\": [\n          \"Bitcoin\"\n        ],\n        \"num_unique_values\": 1,\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"open\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": NaN,\n        \"min\": 19475.8,\n        \"max\": 19475.8,\n        \"samples\": [\n          19475.8\n        ],\n        \"num_unique_values\": 1,\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"high\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": NaN,\n        \"min\": 20089.0,\n        \"max\": 20089.0,\n        \"samples\": [\n          20089.0\n        ],\n        \"num_unique_values\": 1,\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"low\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": NaN,\n        \"min\": 18974.1,\n        \"max\": 18974.1,\n        \"samples\": [\n          18974.1\n        ],\n        \"num_unique_values\": 1,\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"close\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": NaN,\n        \"min\": 19140.8,\n        \"max\": 19140.8,\n        \"samples\": [\n          19140.8\n        ],\n        \"num_unique_values\": 1,\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"volume\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": NaN,\n        \"min\": 13314600000.0,\n        \"max\": 13314600000.0,\n        \"samples\": [\n          13314600000.0\n        ],\n        \"num_unique_values\": 1,\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"market\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": NaN,\n        \"min\": 326141000000.0,\n        \"max\": 326141000000.0,\n        \"samples\": [\n          326141000000.0\n        ],\n        \"num_unique_values\": 1,\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {},
          "execution_count": 27
        }
      ],
      "source": [
        "#Ваш код тут\n",
        "#   |\\__/,|   (`\\\n",
        "#   |o o  |__ _)\n",
        "# _.( T   )  `  /\n",
        "#((_ `^--' /_<  \\\n",
        "#`` `-'(((/  (((/"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "3F9UdmukL07u"
      },
      "source": [
        "### 5. У какой монеты самая высокая и самая низкая средняя капитализация (среднее арифметическое капитализаций за все доступные дни)? Постройте круговую диаграмму с долями."
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "#Ваш код тут\n",
        "#   |\\__/,|   (`\\\n",
        "#   |o o  |__ _)\n",
        "# _.( T   )  `  /\n",
        "#((_ `^--' /_<  \\\n",
        "#`` `-'(((/  (((/"
      ],
      "metadata": {
        "id": "K-8X-XIF2iU8"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "source": [],
      "metadata": {
        "id": "K32mYlKubV0x"
      }
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "Q2uOSfUsL07w"
      },
      "source": [
        "## 2. Визуализация\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "uwjJ-L7tL07w"
      },
      "source": [
        "Самая интересная часть работы аналитика состоит во внимательном вглядывании в правильно выбранные и построенные графики."
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "**Реализуйте функцию для визуализации цен выбранной валюты за выбранный диапазон дат.**"
      ],
      "metadata": {
        "id": "mtUf5gGiNa6z"
      }
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "9qevVDaEL07x"
      },
      "source": [
        "На графике должны быть видны цены начала и конца продаж. А так же минимальная и максимальная цена за этот день.\n",
        "Подпишите график и оси координат. Добавьте сетку. Увеличьте размер изображения.\n",
        "Можете попробовать использовать `candlestick_ohlc` (`from mplfinance.original_flavor import candlestick_ohlc`), но можно и без него."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "scrolled": false,
        "id": "mR_RvLetL07y"
      },
      "outputs": [],
      "source": [
        "def plot_fancy_price_action(coins, symbol, start_date, end_date):\n",
        "    # Paste your code here"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "C1F_4oSmL07z"
      },
      "source": [
        "Посмотрим, что получилось:"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "VIF6IvysL070"
      },
      "outputs": [],
      "source": [
        "plot_fancy_price_action(coins=coins, symbol='VERI', start_date='2013-06-01', end_date='2019-06-30')"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "cPzieShSL070"
      },
      "source": [
        "Никакого датасаенса в этом задании нет. Просто аналитик должен уметь строить графики, либо знать готовые инструменты."
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "8eizRenYL071"
      },
      "source": [
        "## 3. Накачка и сброс\n"
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "Криптовалютные биржи до сих пор остаются маргинальным местом, эдаким диким западом финансового мира. Как следствие, здесь процветают схемы относительно\n",
        "честного отъема денег. Одна из них - **pump'n'dump** (накачка и сброс).\n",
        "\n",
        "Она выглядит следуюшим образом. Несколько крупных игроков или много мелких договариваются вместе купить малоизвестную монету с низкой ценой и объемом торгов. Это приводит к мгновенному взлету цены (pump), далее приходят неопытные игроки в надежде успеть заработать на таком росте. В этот момент организаторы схемы начнают все продавать (dump). Весь процесс занимает от нескольких минут до нескольких часов."
      ],
      "metadata": {
        "id": "WFgtlhMKNjtX"
      }
    },
    {
      "cell_type": "markdown",
      "source": [
        "Ваша задача -- **найти самый сильный pump'n'dump** монеты на заданном промежутке времени. Для этого для каждого дня определим число `pnd` равное отношению максимальной цены монеты в данный день к максимуму из цен открытия и закрытия в тот же день. Нужно найти день, когда `pnd` был максимален и величину `pnd`."
      ],
      "metadata": {
        "id": "EXsHpJmHNstO"
      }
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "rzA20Gm6L072"
      },
      "outputs": [],
      "source": [
        "def find_most_severe_pump_and_dump(coins, symbol, start_date, end_date):\n",
        "    # Paste your code here"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "VZjM8FJ-L073"
      },
      "outputs": [],
      "source": [
        "find_most_severe_pump_and_dump(coins, symbol='BTC', start_date='2017-06-01', end_date='2018-06-01')"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "nos0kiTFL073"
      },
      "source": [
        "Сравните эти значения для разных монет:"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "EXJgxg7HL074"
      },
      "outputs": [],
      "source": []
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "4I9QAGfGL074"
      },
      "source": [
        "## 4. Окупаемость инвестиций\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "Ts7GdSZJL075"
      },
      "source": [
        "Вам нужно посчитать **окупаемость инвестиций (ROI)** в криптовалюты на заданном промежутке времени.\n",
        "\n",
        "Окупаемость определяется как отношение *изменения цены портфеля* к *исходной цене портфеля*. Цена портфеля - это суммарная стоимость (в USD) всех монет в портфеле.\n",
        "\n",
        "`investments` - словарь, в котором ключи - это названия монет, значения - это сумма вложений в эту монету (в USD)."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "RwDtgKjhL076"
      },
      "outputs": [],
      "source": [
        "def compute_roi(coins, investments, start_date, end_date):\n",
        "    # Paste your code here"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "oWW8XBrIL076"
      },
      "outputs": [],
      "source": [
        "compute_roi(coins, investments={'BTC': 1000, 'LTC': 500}, start_date='2018-04-04', end_date='2018-06-01')"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "UQDAuP_QL077"
      },
      "outputs": [],
      "source": [
        "compute_roi(coins, investments={'BTC': 1000, 'LTC': 500}, start_date='2013-05-28', end_date='2018-06-06')"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "Xz7CvTFqL078"
      },
      "source": [
        "## 5. Технический анализ\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "NFsh0yEqL078"
      },
      "source": [
        "**Технический анализ** - это способ предсказания поведения графика по некоторым вспомогательным величинам построенным по исходному графику. Один из простейших методов технического анализа - **[границы Боллинджера](https://en.wikipedia.org/wiki/Bollinger_Bands)**. Кто-то верит, что график касаясь границы от него должен отражаться.\n",
        "\n",
        "Границы считаются очень просто:\n",
        "\n",
        "$$(MA \\pm K\\sigma),$$\n",
        "\n",
        "где `MA` - скользящее среднее за `N` дней, а $\\sigma$ - скользящее стандартное отклонение за `N` дней."
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "Mo4GLdibL079"
      },
      "source": [
        "Нарисуйте **график цены**, **скользящее среднее** и **границы Боллинджера** c параметрами `N (window) = 21`, `K (width) = 2`.\n",
        "\n",
        "Тут вам поможет функция `rolling` для подсчёта среднего и стандартного отклонения по скользящему окну.\n",
        "\n",
        "Не забудьте подписать график и оси, отрисовать легенду и выбрать для нее лучшее расположение."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "zf4zMAGkL079"
      },
      "outputs": [],
      "source": [
        "def plot_bollinger_bands(coins, symbol, window, width):\n",
        "    # Paste your code here"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "dWBsySLJL07-"
      },
      "outputs": [],
      "source": [
        "plot_bollinger_bands(coins=coins, symbol='EOS', window=21, width=2)  # тут должен появиться график"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "pJAYp_pUL07_"
      },
      "source": [
        "**Сделайте вывод о том, выполнялось ли правило Боллинджера:**"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "k7NsxSsUL07_"
      },
      "source": [
        "**Ваш ответ тут**"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "41k4GlWGL08A"
      },
      "source": [
        "## 6. Капитализация как индикатор\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "sONehy4zL08A"
      },
      "source": [
        "Многие люди, которые торгуют криптовалютой, любят смотреть на [капитализацию](https://academy.binance.com/ru/articles/crypto-market-capitalization-explained). Давайте поймём почему."
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "4spBUSr5L08B"
      },
      "source": [
        "**Нарисуйте еще два графика:**\n",
        "1. общая капитализация биткойна (BTC), эфира (ETH), еос (EOS), биткойн кэша (BCH), стеллара (XLM) и лайткойна (LTC)\n",
        "2. доли капитализаций этих монет от общей капитализации рынка.\n",
        "\n",
        "При этом используйте данные начиная с 2017-07-01."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "scrolled": false,
        "id": "xHMMSJg6L08B"
      },
      "outputs": [],
      "source": [
        "def plot_coins_capitalizations(coins, symbols, start_date):\n",
        "    # Paste your code here"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "jOD_z5hYL08C"
      },
      "outputs": [],
      "source": [
        "plot_coins_capitalizations(\n",
        "    coins=coins,\n",
        "    symbols=('BTC', 'ETH', 'EOS', 'BCH', 'XLM', 'LTC'),\n",
        "    start_date='2017-07-01'\n",
        ")"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "A_qkmlioL08C"
      },
      "source": [
        "Проанализируйте зависимость доли капитализации альткойнов (остальных монет, кроме биткойна) от доли капитализации биткойна. Как выдумаете, в чём причина такой зависимости?"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "RzJXy2cjL08D"
      },
      "source": [
        "**Ваш ответ тут**"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "5TtUAu7PL08E"
      },
      "source": [
        "## 7. Корреляции монет\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "ii_8rp4YL08E"
      },
      "source": [
        "Теперь нужно подробнее посмотреть на корреляции средних долей капитализаций монет. При этом будем смотреть на среднее сглаженное за последние `window` дней до дня `date` с коэффициентом сглаживания `alpha` для набора монет `symbols`.\n",
        "\n",
        "Реализуйте функцию, которая будет возвращать квадратный `DataFrame` с числом строк и столбцов, равным числу рассматриваемых монет и со значениями корреляций:"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "lxZQQuBxL08E"
      },
      "outputs": [],
      "source": [
        "def calc_coins_correlations(coins, date, symbols, window, alpha):\n",
        "    # Paste your code here"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "L8iBTKhuL08F"
      },
      "outputs": [],
      "source": [
        "correlations = calc_coins_correlations(coins, date=\"2018-06-06\",\n",
        "                                       symbols=['BTC', 'ETH', 'EOS', 'BCH', 'XLM', 'LTC', 'ADA'],\n",
        "                                       window=21, alpha=0.1)\n",
        "# Теперь посмотрим на эти корреляции следующим образом:\n",
        "correlations.style.background_gradient(cmap='coolwarm').set_precision(2)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "QbBg3mgjL08F"
      },
      "source": [
        "Довольно интересно ещё взглянуть на 2017-12-27:"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "IJrYVdA0L08G"
      },
      "outputs": [],
      "source": [
        "correlations = calc_coins_correlations(coins, date=\"2017-12-27\",\n",
        "                                       symbols=['BTC', 'ETH', 'EOS', 'BCH', 'XLM', 'LTC', 'ADA'],\n",
        "                                       window=21, alpha=0.1)\n",
        "# Теперь посмотрим на эти корреляции следующим образом:\n",
        "correlations.style.background_gradient(cmap='coolwarm').set_precision(2)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "D4kyPV0CL08G"
      },
      "source": [
        "## 8. Анализ одной стратегии\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "Y8rQ5WIML08H"
      },
      "source": [
        "Разберем один мечтательный пример. Посмотрим какую прибыль могла бы нам принести хрестоматийная торговая стратегия, основанная на скользящих средних.\n",
        "\n",
        "Стратегия выглядит следующим образом: мы строим две скользящие среднии для графика цены. С маленьким окном (ведущее скользящее среднее) и с бОльшим окном (запаздывающее скользящее среднее). **Мы покупаем, когда ведущее среднее становится больше запаздывающего, и продаем в противном случае.**\n",
        "\n",
        "Посмотрим на пример:"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "gEPEQGSTL08H",
        "outputId": "d4bbd2f4-ba46-45d9-c930-35daf6ae0a48"
      },
      "outputs": [
        {
          "data": {
            "image/png": "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4Nn3Hu6xSutwj1a6AsATeh8EvvYc94C1Ntfz+jqqH630vudHREREREREImTIkCFkZWWRkZHBuHHjauzbvn07a9euZdSoURhjiIuLY+XKlQwePLjqmH//+98sXryYBQsWRHTcYQvD1tr/AYGW9zrVz/EWuD5AXy8AL/hpXwwM3v8TIiIiIiIiLUcwFdxwmjBhArfccguZmZnk5ORUtb/88svs3r276lnA+fn5ZGRkMH36dAA+/vhjpk+fzoIFC2jTpk1ExxzWe4ZFRERERETk4DdlyhTuvfdejjrqqBrtGRkZzJs3j6ysLLKysvjmm2+q7hteunQp11xzDXPnzqVz584RH3NEHq0kIiIiIiIiB6+0tDRuuOGGGm1ZWVls2rSJkSNHVrX17t2blJQUFi1axJ133klhYSHnn38+AIcddhhz584F4OSTT+b777+nsLCQtLQ0ZsyYwZgxY0I6ZoVhERERERERaZTCwsL92tLT06seUbVly/4P/FmyZAngpkgH4rsAV7homrSIiIiIiIi0OArDIiIiIiIi0uIoDIuIiIiIiEiLozAsIiIiB4Vrr4UHHoj2KEREpLlQGBYREZGDwiefwOzZ0R6FiIg0FwrDIiIiclAoLIT162HHjmiPREREmgOFYRERETkoeJ/u8eWX0R2HiEhLYozhkksuqXpfXl5Oamoq48ePr3Hc2WefXeN5wwAzZ84kNTWVoUOHMnToUJ5//vmqfbNmzaJfv37069ePWbNmhWXses6wiIiINHuVldVheOFCmDAhuuMREWkpEhMTWblyJXv37iUhIYGPPvqI7t271zgmLy+Pb775hnbt2rFhwwb69OlTte/CCy/kySefrHF8bm4u999/P4sXL8YYw7Bhw5gwYQIdOnQI6dhVGRYREZFmr7i4+vXChdEbh4hISzRu3DjeffddADIyMrjoootq7H/99dc566yzmDRpEnPmzKm3vw8++IDTTz+djh070qFDB04//XTmzZsX8nGrMiwiIiLNnrcqnJgIX30FZWUQFxfdMYmIRNSNN8KyZaHtc+hQePzxeg+bNGkSDzzwAOPHj2fFihVMmTKFzz77rGp/RkYG99xzD126dOG8885j2rRpVftee+01Pv30U4444ggee+wxevTowZYtW+jRo0fVMWlpaWzZsiW03w1VhkVEROQgUFDgtqecAnv3wooV0R2P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\n",
            "text/plain": [
              "<Figure size 1152x648 with 1 Axes>"
            ]
          },
          "metadata": {
            "needs_background": "light"
          },
          "output_type": "display_data"
        }
      ],
      "source": [
        "def plot_moving_averages(coins, symbol, leading_window, lagging_window, start_date, end_date):\n",
        "    coin = coins[coins['symbol'] == symbol][start_date:end_date]\n",
        "    price = coin['price']\n",
        "    leading_mean = price.rolling(window=leading_window).mean()\n",
        "    lagging_mean = price.rolling(window=lagging_window).mean()\n",
        "\n",
        "    fig = plt.figure(figsize=(16, 9))\n",
        "    ax = fig.add_subplot(111)\n",
        "\n",
        "    ax.set_title('Price action for {}'.format(symbol))\n",
        "    ax.plot(leading_mean, color='green', label='MA{}'.format(leading_window))\n",
        "    ax.plot(lagging_mean, color='red', label='MA{}'.format(lagging_window))\n",
        "    ax.plot(price, color='blue', label='price')\n",
        "    ax.set_xlabel('Date')\n",
        "    ax.set_ylabel('Price')\n",
        "    ax.legend(loc='best')\n",
        "    ax.grid(True)\n",
        "    plt.show()\n",
        "\n",
        "plot_moving_averages(\n",
        "    coins=coins,\n",
        "    symbol='BTC',\n",
        "    leading_window=21,\n",
        "    lagging_window=50,\n",
        "    start_date='2017-05-01',\n",
        "    end_date='2018-08-01')"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "pK6shsqJL08I"
      },
      "source": [
        "Видно, что скользящее среднее с бОльшим окном медленнее реагирует на изменение цены. Именно на этой идее и основана торговая стратегия/\n",
        "\n",
        "\n",
        "**Реализуйте функцию**, которая строит два графика. На правом будут изображены цена и скользящие средние. На левом - во сколько раз изменится размер вложений при использовании нашей стратегии и при обычном инвестировании (купили и держим, смотрим как растет цена наших купленных валют).\n",
        "\n",
        "Иными словами сравниваем 2 подхода:\n",
        "- сразу в начальный момент времени купить крипты на все деньги - обычное инвестирование\n",
        "- ждать подходящих моментов и покупать только в них равными порциями - стратегия\n",
        "\n",
        "Считайте, что суммарное количество вложенных денег в обоих подходах одинаковое."
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        ">**Примечания:**\n",
        ">- Давайте использовать только цены закрытия. При этом, чтобы узнать цены за вчерашний день, стоит использовать метод `shift(1)` у `Series`.\n",
        ">- Отношение цен закрытия за сегодня и за вчера - это **multiplier** за сегодняшний день. При этом давайте строить графики накопления для multiplier-ов. Т.е. если мы смотрим на 3 дня и в первый день multiplier = 1.5, во второй - 0.5 и в третий - 2, то график будет выглядеть так: (1.5, 1.5 * 0.5, 1.5 * 0.5 * 2).\n",
        ">- При использовании нашей новой стратегии мы будем либо покупать, если ведущее среднее становится больше запаздующего на некоторый `threshold` (при этом лучше разницу сперва поделить на цену), либо оставлять всё как есть. При этом, конечно, нужно, принимая решения за сегодняшний день, смотреть только на статистику из прошлого."
      ],
      "metadata": {
        "id": "AcdF_qkJQ2Xy"
      }
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "scrolled": false,
        "id": "gp86AGWyL08I"
      },
      "outputs": [],
      "source": [
        "def plot_moving_averages_strategy(\n",
        "    coins, symbol, lead_window, lag_window, threshold, start_date, end_date\n",
        "):\n",
        "    # Paste your code here"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "m2CDc_kkL08J"
      },
      "outputs": [],
      "source": [
        "# Теперь на основе реализованной функции сделаем интерактивные графики и поизучаем, что получилось:\n",
        "symbol_selector = ipywidgets.Dropdown(\n",
        "    options=('BTC', 'ETH', 'EOS', 'BCH', 'XLM', 'LTC', 'ADA'),\n",
        "    index=0,\n",
        "    value='BTC',\n",
        "    layout={'width': '700px'},\n",
        "    continuous_update=False\n",
        ")\n",
        "\n",
        "lead_window_slider = ipywidgets.IntSlider(\n",
        "    value=21,\n",
        "    min=1,\n",
        "    max=200,\n",
        "    step=1,\n",
        "    layout={'width': '700px'},\n",
        "    continuous_update=False)\n",
        "\n",
        "lag_window_slider = ipywidgets.IntSlider(\n",
        "    value=50,\n",
        "    min=1,\n",
        "    max=200,\n",
        "    layout={'width': '700px'},\n",
        "    step=1, continuous_update=False)\n",
        "\n",
        "threshold_slider = ipywidgets.FloatSlider(\n",
        "    min=0,\n",
        "    max=0.20,\n",
        "    step=0.001,\n",
        "    value=0.025,\n",
        "    layout={'width': '700px'},\n",
        "    continuous_update=False)\n",
        "\n",
        "start_date_slider = ipywidgets.SelectionSlider(\n",
        "    options=pd.date_range('2013-04-28', '2018-06-06', freq='D'),\n",
        "    index=0,\n",
        "    value=pd.Timestamp('2017-05-01'),\n",
        "    layout={'width': '700px'},\n",
        "    continuous_update=False\n",
        ")\n",
        "\n",
        "end_date_slider = ipywidgets.SelectionSlider(\n",
        "    options=pd.date_range('2013-04-28', '2018-06-06', freq='D'),\n",
        "    index=0,\n",
        "    value=pd.Timestamp('2018-01-01'),\n",
        "    layout={'width': '700px'},\n",
        "    continuous_update=False\n",
        ")\n",
        "\n",
        "ipywidgets.interact(\n",
        "    plot_moving_averages_strategy,\n",
        "    coins=ipywidgets.fixed(coins),\n",
        "    symbol=symbol_selector,\n",
        "    lead_window=lead_window_slider,\n",
        "    lag_window=lag_window_slider,\n",
        "    threshold=threshold_slider,\n",
        "    start_date=start_date_slider,\n",
        "    end_date=end_date_slider\n",
        ")"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "M0nDeThDL08K"
      },
      "source": [
        "Попробуйте разные значения параметров для разных монет и сделайте выводы о применимости такой модели:"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "48-ixm47L08K"
      },
      "source": [
        "**Ваш ответ тут**"
      ]
    }
  ],
  "metadata": {
    "kernelspec": {
      "display_name": "Python 3",
      "language": "python",
      "name": "python3"
    },
    "language_info": {
      "codemirror_mode": {
        "name": "ipython",
        "version": 3
      },
      "file_extension": ".py",
      "mimetype": "text/x-python",
      "name": "python",
      "nbconvert_exporter": "python",
      "pygments_lexer": "ipython3",
      "version": "3.8.5"
    },
    "colab": {
      "provenance": []
    }
  },
  "nbformat": 4,
  "nbformat_minor": 0
}